package com.cskaoyan.javase.array._3exception._3length;

/**
 * 思考：
 * 数组长度为0和数组是null以及数组未初始化，有啥区别？
 * 数组没有初始化是完全不可用的，不能做任何操作。
 *
 * 数组长度为0和数组为null都是可以使用的，可以认为是经过初始化的，但它们都不是正常数组：
 * 长度为0的数组，只在内存中存在结构但没有存储单元，不能存储任何数据。
 * 它的操作中：
 *
 * 直接打印数组名可以获取数组对象的地址。
 * 不能访问任何数组下标，否则都会抛出数组下标越界异常。
 * 输出数组的长度为0
 * 数组为null，表示数组的引用指向了null，数组（对象）无法进行任何操作。
 *
 * 直接打印数组名得到一个null字符串。
 * 不能访问任何数组下标，也不能打印数组长度，都会报空指针异常。
 *
 *
 * @since 14:57
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr;
        // System.out.println(arr);
        int[] arr2 = null;
        System.out.println(arr2);
        // System.out.println(arr2.length);
        // System.out.println(arr2[0]);
        int[] arr3 = {};
        System.out.println(arr3);
        System.out.println(arr3.length);
        // System.out.println(arr3[0]);
    }
}
